1. Field of the Invention
The present invention relates to a data storage array device having a redundant configuration and so on for storing continuous media data such as image information.
2. Related Art of the Invention
With the recent development in multimedia technology, continuous media data such as digital images and voice data are more often recorded onto data storage devices (random access devices) such as a hard disk drive. For image data, such as MPEG for example, the transfer rate is about 1.5 to 30 Mbps per stream. Further, since the data size of continuous media data is large, it is becoming common to use several random access devices as an array, and to allow them to be externally recognized as one virtual large-capacity device.
Accessing continuous media data requires uninterrupted access to the data in data storage devices and reliability with which the server system as a whole does not stop even if a part of the data storage devices goes wrong. A plurality of data storage devices in a redundant configuration also enable recovery of correct data by using redundant data even if a part of the data storage devices goes wrong.
In a data storage array device with a redundant configuration, when a host writes data, the data from the host is written to the data storage devices with redundant data added to it. When the host requests data to be read out, the data is read out and returned to the host as it is, if all data storage devices are operating properly. If there is a failure in one of the data storage devices, the redundant configuration enables the data in the failed part to be reconstructed from the data of the remaining data storage devices operating properly and the redundant data to return the data to the host.
A data storage array device having such a redundant configuration can address partial failures of data storage devices. However, a server system for continuous media is not allowed to cause significant delay with respect to access requests from a host even if it may not be regarded as a failure, because delay above a certain level causes discontinuity of images.
To guarantee the response time delay in a data storage array device for such a server system that supports continuous media, some methods use a timer to guarantee the response time.
One of the conventional methods of processing with a timer upon reading out, Japanese Patent Laid-Open No. 2-81123 specification entitled xe2x80x9cParallel Data Transfer System and Its Devicexe2x80x9d, discloses a method in which delay of a response due to a failure of a data storage device is detected, and data is reconstructed by using redundant data. In a configuration of N number of data disks and one redundant disk, delay for Read requests addressed to the N+1 disks is detected by starting a timer when any one of the disks responds to the Read request. If the last one has not responded after a predetermined period, the data of the disk with its response delayed is recovered from data of the proper data disks and data of the redundant disk. Thus, the delay after the disks begin to respond can be limited to a certain range.
Another conventional example, Japanese Patent Laid-Open No. 9-69027 entitled xe2x80x9cRecording System for Multimediaxe2x80x9d, discloses a method of guaranteeing delay with a timeout table for guaranteeing the response time for a plurality of users. The timeout table is set for each user, and a timer is set upon receipt to fare quest from a host, then Read or Write requests are issued to the disks. Timeout processing is performed when a response of any disk is delayed. If necessary data has not been accessed after a period stored in the timeout table, redundant data is accessed to recover the necessary data, and the response is returned to the host. After response to the host, the operation returns to the state of waiting the next requests from the host and repeats requesting to the disks and the timeout processing described above when a new request arrives. The delay time from the arrival of requests to the return of responses can be guaranteed by timer values in the timeout table.
However, the conventional data storage array devices have the problems described below.
The problems involved in the timer processing as in the conventional devices are as follows. Typical disk devices, which involves an access waiting time including a seek time of a magnetic head and a waiting time for disk rotation, adopts multiprocessing of commands (Read or Write instructions) by command queuing in order to optimize disk accesses and to increase the total transfer rate.
Optimizing execution of a plurality of commands within the disk devices by the command queuing can improve the transfer rate more significantly than separately processing commands without queuing. However, in the conventional examples, timer processing is performed in which requests and responses are in one-to-one correspondence, so that it is impossible to queue a plurality of requests from the host. Thus, each disk device processes the access requests independently of other requests, which precludes the disk devices from offering their full performance and from supplying data at a high transfer rate as a data storage array device.
If the data storage array device supports the command queuing in response to successive requests issued by the host, it is possible to increase efficiency of the operation of the disk devices by queuing accesses to the disk devices. However, it is difficult for the conventional methods using a timer to guarantee the response delay times imply by queuing accesses to the disk devices. For example, if the access time is guaranteed for the maximum number of requests acceptable at a time, the timer will be set long and therefore the response delay time will belong with no guarantee of real time operation. Further, when there are a small number of users, only a few requests are accepted at a time and the waiting time will be wasted.
Thus, with a view to solving the above-mentioned problems, the object of the present invention is to guarantee response performance for continuous media data accesses and to provide a data storage array device and so on that perform multiprocessing of a plurality of access requests while having a high transfer efficiency.
One aspect of the present invention is a data storage array device including: a plurality of data storage devices having a redundant information; and a controller that controls the data storage devices,
wherein said controller comprises:
instruction issuing means of sequentially issuing access instruction groups configured by a plurality of divided access instructions, to said plurality of data storage devices;
response detecting means of detecting responses to the instructions executed in the data storage devices;
timer means of counting time; and
completion processing means, which monitors a group of responses to a given one of the access instruction groups, and
if the responses from all data storage devices have been finished within a period set by the timer means, completes response processing for the given one of the access instruction groups at the point when the responses have been finished, and
if the responses from all data storage devices have not been finished at the end of a period set by the timer, completes response processing for the given one of the access instruction groups by using only the responses from the data storage devices that have finished their responses at the end of the period of the timer.
Another aspect of the present invention is the data storage array device according to 1st invention, wherein the timer for a given one of the access instruction groups is started with a timing of the response finished last in a group of responses to the just previous one of the access instruction groups.
Still another aspect of the present invention is the data storage array device, wherein the timer for a given one of the access instruction groups is started with a timing of the response finished first in a group of responses to the just previous one of the access instruction groups.
Yet still another aspect of the present invention is the data storage array device, wherein the timer for a given one of the access instruction groups is started with a timing between that of the response finished last and that of the response finished first in a group of responses to the just previous one of the access instruction groups.
Still yet another aspect of the present invention is the data storage array device, wherein the timer for a given one of the access instruction groups is started with a timing of the start of the instruction executed first in the given one of the access instruction groups.
A further aspect of the present invention is the data storage array device, wherein the timer for a given one of the access instruction groups is started with a timing of the start of the instruction executed last in the given one of the access instruction groups.
A still further aspect of the present invention is the data storage array device, wherein the timer for a given one of the access instruction groups is started with a timing between that of the start of the instruction executed first and that of the start of the instruction executed last in the given one of the access instruction groups.
A yet further aspect of the present invention is the data storage array device, wherein, as long as the responses from all data storage devices have not been finished at the end of a period set by the timer, the timer is started next at the end of the period of the timer.
A still yet further aspect of the present invention is the data storage array device, wherein, when the responses from all data storage devices have not been finished at the end of a period set by the timer, data of a data storage device that has not finish its response is recovered by using data of a predetermined number of data storage devices, including a data storage data stored therein, that have finished their responses.
An additional aspect of the present invention is a data access method for a data storage array device, including: a plurality of data storage devices having a redundant information; and a controller that controls the data storage devices,
wherein said controller comprises the steps of:
multiplexingly and sequentially issuing access instruction groups to said plurality of data storage devices;
detecting responses to the instructions executed in the data storage devices;
counting time with timer means;
monitoring a group of responses to a given one of the multiplexed access instruction groups;
if the responses from all data storage devices have been finished within a period set by the timer means, completing response processing for the given one of the access instruction groups at the point when the responses have been finished; and
if the responses from all data storage devices have not been finished at the end of a period set by the timer, completing response processing for the given one of the access instruction groups by using only the responses from the data storage devices that have finished their responses at the end of the period of the timer.